# 第一步：构建阶段
FROM maven:3.8.6-openjdk-8 AS build

# 设置工作目录
WORKDIR /app

# 复制项目文件到构建容器中
COPY . .

# 将项目目录下的 settings.xml 复制到 Maven 的默认配置路径
COPY settings.xml /root/.m2/settings.xml

# 声明环境变量
ENV SPRING_PROFILES_ACTIVE=prod

# 根据 TARGET 参数编译指定的模块
RUN mvn clean package -DskipTests

# 第二步：运行阶段
FROM openjdk:8-jdk-slim

# 添加作者信息
LABEL maintainer="tz <insanetz@163.com>"

# 声明环境变量
ENV SPRING_PROFILES_ACTIVE=prod

# copy arthas
COPY --from=registry.cn-hangzhou.aliyuncs.com/insanetz/arthas:latest /opt/arthas /opt/arthas

# 设置工作目录
WORKDIR /app

# 处理时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

# 从构建阶段复制构建的 jar 文件到运行镜像中
COPY --from=build /app/target/*.jar app.jar

# 暴露端口
EXPOSE 1001

# 运行服务
CMD ["sh", "-c", "echo Running with JVM options: $JAVA_OPTS && java $JAVA_OPTS -jar app.jar --spring.profiles.active=${SPRING_PROFILES_ACTIVE} --server.port=1001"]